package zhongbo.java.air.airmonitor.service;

import zhongbo.java.air.airmonitor.model.AirAlertLog;
import zhongbo.java.air.common.vo.PageVo;

import java.util.Date;
import java.util.List;

public interface IAirAlertLogService<AirAlertLog> {

    /**
     * 新增告警日志
     * @param airAlertLog 告警日志
     * @return 告警日志
     */
    public AirAlertLog insert(AirAlertLog airAlertLog);

    /**
     * 更新告警日志
     * @param airAlertLog 告警日志
     * @return 告警日志
     */
    public AirAlertLog updateById(AirAlertLog airAlertLog);

    /**
     * 根据ID查询告警日志
     * @param id 告警日志ID
     * @return 告警日志
     */
    public AirAlertLog queryById(String id);

    /**
     * 根据ID删除告警日志
     * @param id 告警日志ID
     * @return 删除结果
     */
    public String deleteById(String id);

    /**
     * 分页查询
     *
     * @param pageNumber 页码
     * @param pageSize   每页大小
     * @param keyword  查询字段查询关键词
     * @param fields   查询关键词
     * @param oderByField  排序字段
     * @param orderByAsc  是否排序
     *
     * @return 分页查询结果
     */
    public PageVo<AirAlertLog> queryByPage(Integer pageNumber, Integer pageSize, String keyword, String fields
            , String oderByField, Boolean orderByAsc);

    /**
     * 根据icao和triggerTime查询告警日志
     * @param icaoCode icao码
     * @param triggerTime 触发时间
     *
     * @return 告警日志
     */
    public AirAlertLog queryByIcaoCodeAndTriggerTime(String icaoCode, Date triggerTime) throws RuntimeException;
}
